﻿
namespace DotNet.Common.Extensions
{
        /// <summary>
        /// 字符串中文处理扩展
        /// </summary>
        public static partial class StringExtensions
        {
                /// <summary>
                /// 转全角(SBC case)
                /// </summary>
                /// <param name="input">任意字符串</param>
                /// <returns>全角字符串</returns>
                public static string ToSBC(this string input)
                {
                        char[] c = input.ToCharArray();
                        for (int i = 0; i < c.Length; i++)
                        {
                                if (c[i] == 32)
                                {
                                        c[i] = (char)12288;
                                        continue;
                                }
                                if (c[i] < 127)
                                        c[i] = (char)(c[i] + 65248);
                        }
                        return new string(c);
                }

                /// <summary>
                /// 转半角(DBC case)
                /// </summary>
                /// <param name="input">任意字符串</param>
                /// <returns>半角字符串</returns>
                public static string ToDBC(this string input)
                {
                        char[] c = input.ToCharArray();
                        for (int i = 0; i < c.Length; i++)
                        {
                                if (c[i] == 12288)
                                {
                                        c[i] = (char)32;
                                        continue;
                                }
                                if (c[i] > 65280 && c[i] < 65375)
                                        c[i] = (char)(c[i] - 65248);
                        }
                        return new string(c);
                }
        }
}
